%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Paweł 'nkoder' Barszcz
%% pawelbarszcz@gmail.com
%% 7 marca 2012 r.
%%

% obsługa języka polskiego
\usepackage[polish]{babel}	% pakiet niezbędny do obsługi języka polskiego
\usepackage[utf8]{inputenc}	% kodowanie dokumentu
\usepackage[T1]{fontenc}	% system kodowania czcionek
\usepackage{polski}			% słownik łamania wyrazów języka polskiego
%\usepackage{indentfirst}	% wcięcie w każdym pierwszym akapicie sekcji itp. (polski standard drukarski)
\frenchspacing				% francuskie zwyczaje typograficzne (używane w Polsce); np. WYŁĄCZA dłuższe odstępy po kropkach (że niby koniec zdania)

% ustawienia pakietu hyperref (PDF-owe bajery)
\usepackage{hyperref}
\hypersetup{
	bookmarks=true,	    			% show bookmarks bar?
	unicode=true,					% non-Latin characters in Acrobat’s bookmarks
	pdftoolbar=true,				% show Acrobat’s toolbar?
	pdfmenubar=true,				% show Acrobat’s menu?
	pdffitwindow=false,				% window fit to page when opened
	pdfstartview={Fit},				% fits the page to the window
	pdfpagelayout={TwoColumnRight},
	pdfpagemode={},
	pdfnewwindow=true,		        % links in new window
	colorlinks=true,				% false: boxed links; true: colored links
	linkcolor=black,				% color of internal links, e.g. blue
	citecolor=black,				% color of links to bibliography, e.g. green
	filecolor=black,				% color of file links, e.g. magenta
	urlcolor=black,					% color of external links, e.g. cyan
}
% naprawa skoków pakietu HYPERREF do obrazków itp.
% (bez tego po skoku na górze jest podpis rysunku, a rysunek jeszcze wyżej, więc go nie widać)
\usepackage[all]{hypcap}

\usepackage{setspace}	% włączenie sterowania interlinią za pomocą \singlespacing, \onehalfspacing oraz \doublespacing

% allows for temporary adjustment of side margins
\usepackage[strict]{changepage}

\clubpenalty=10000 % bardzo duża kara za sieroty (w sensie linii)
\widowpenalty=10000 % bardzo duża kara za wdówki (w sensie linii)
\brokenpenalty=10000 % kara za dzielenie wyrazów między strony

% włączenie swobodnego rozszerzania tekstu na potrzeby poprawy łamania linii np. w środowiskach TT
\sloppy

% zmiana marginesów
% http://stackoverflow.com/questions/1670463/latex-change-margins-of-only-a-few-pages
%\newenvironment{changeRightMargin}[1]{%
%	\setlength{\rightmargin}{#1}%
%}

% przyjemny pakiet do robienia notatek ToDo ( http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/todonotes.html )
\usepackage{todonotes}
\presetkeys{todonotes}{inline}{} % ustawienie domyślnego trybu na 'inline' (odpowiednik pisania "\todo[inline\{...}

% dołączanie obrazków ze skalowaniem w szerokości, jeśli rysunek jest zbyt szeroki
\usepackage{graphicx}
% http://tex.stackexchange.com/questions/12459/resize-large-images-that-exceed-page-margin-whilst-respecting-existing-scale
% Determine if the image is too wide for the page.
\makeatletter
\def\ScaleIfNeeded {%
	\ifdim\Gin@nat@width>\linewidth
		\linewidth
	\else
		\Gin@nat@width
	\fi
}
\makeatother
% Resize figures that are too wide for the page.
\let\oldincludegraphics\includegraphics
\renewcommand\includegraphics[2][]{%
	\oldincludegraphics[width=\ScaleIfNeeded]{#2}
}


% ładne listingi kodów
% http://texblog.wordpress.com/2008/04/02/include-source-code-in-latex-with-listings/
\usepackage{color}
\usepackage{listings}
\lstdefinelanguage[PL]{SQL}[]{SQL}{
	morekeywords={ DECLARE, IS, BEGIN, END,
	               IF, ELSE, THEN,
	               LOOP, FETCH, WHEN, EXIT,
	               CURSOR, OPEN, CLOSE, 
	               AFTER, BEFORE, FOR, EACH, ROW, REFERENCING, 
	               TYPE, ROWTYPE, 
	               ACCESS, MOD, NLS_DATE_FORMAT,
	               NVL, NVL2, REPLACE, SYSDATE,
	               TO_CHAR, TO_NUMBER,
	               TRUNC, LTRIM, RTRIM },
	morendkeywords={ XMLTYPE, XMLElement, XMLAgg, XMLAttributes },
}
%\lstdefinestyle{Oracle}{
	%basicstyle=\ttfamily,
	%keywordstyle=\lstuppercase,
	%emphstyle=\itshape,
	%showstringspaces=false,
%}
\definecolor{code_background}{rgb}{0.95,0.95,0.95}
\definecolor{code_comment}{rgb}{0.35,0.45,0.15}
\lstset{	% ustawienie damyślne
	%language=[PL]SQL,					% the language of the code
	basicstyle=\footnotesize\ttfamily,	% the size of the fonts that are used for the code
	numbers=left,					% where to put the line-numbers
	firstnumber=1,
	stepnumber=1,					% the step between two line-numbers. If it's 1, each line will be numbered
	numberfirstline=true,
	numberblanklines=true,
	numbersep=10pt,					% how far the line-numbers are from the code
	numberstyle=\sf\tiny,		% the size of the fonts that are used for the line-numbers
	backgroundcolor=\color{code_background}, % choose the background color. You must add \usepackage{color}
	showspaces=false,				% show spaces adding particular underscores
	showstringspaces=false,			% underline spaces within strings
	showtabs=false,					% show tabs within strings adding particular underscores
	tabsize=2,						% sets default tabsize to 2 spaces
	captionpos=b,					% sets the caption-position to bottom
	breaklines=true,				% sets automatic line breaking
	breakatwhitespace=false,		% sets if automatic breaks should only happen at whitespace
	%title=\lstname,	% show the filename of files included with \lstinputlisting; also try caption instead of title
	%escapeinside={\%*}{*)},		% if you want to add a comment within your code
	%morekeywords={*,...},			% if you want to add more keywords to the set
	sensitive=false,
	keywordstyle=\color{blue},
	%keywordstyle=\color{blue}\bfseries,
	ndkeywordstyle=\color{violet},
	identifierstyle=\color{black},
	commentstyle=\color{code_comment},
	stringstyle=\color{purple},
	% poniższe niezbadane jeszce
	xleftmargin=17pt,
	framexleftmargin=3pt,
	framexbottommargin=2pt,
	framextopmargin=2pt,
	framexrightmargin=0pt,
	extendedchars=true,
	captionpos=b,
	frame=tb,
	framerule=0.1pt,	
}
\lstdefinestyle{snippet}	% styl dla krótkich fragmentów kodu wstawioanych bezpośrednio w tekście
{
	%language=[PL]SQL,
	numbers=none,
	frame=none,
	xleftmargin=0pt,
}
% http://stackoverflow.com/questions/1116266/listings-in-latex-with-utf-8-or-at-least-german-umlauts
\lstset{
	literate=
		{ą}{{\k{a}}}1
		{ć}{{\'c}}1 
		{ę}{{\k{e}}}1
		{ł}{{\l{}}}1
		{ń}{{\'n}}1
		{ó}{{\'o}}1 
		{ś}{{\'s}}1 
		{ż}{{\.z}}1
		{ź}{{\'z}}1
		{Ą}{{\k{A}}}1 
		{Ć}{{\'C}}1
		{Ę}{{\k{E}}}1
		{Ł}{{\L{}}}1 
		{Ń}{{\'N}}1 
		{Ó}{{\'O}}1 
		{Ś}{{\'S}}1 
		{Ż}{{\.Z}}1
		{Ź}{{\'Z}}1 
}

% wyśrodkowywanie rysunków, tabel itp.
\makeatletter
\g@addto@macro\@floatboxreset\centering
\makeatother

%%% WYBRAĆ PIERWSZE ALBO DRUGIE ROZWIĄZANIE
% (1) zapewnienie umieszczenia rysunków zawsze PO pierwszym odwołaniu do nich
\usepackage{flafter}
% (2) zmiana parametrów umieszczania rysunków - COŚ MI NIE WYSZŁO :P
%\makeatletter
%\renewenvironment{figure}[][]{% 
%	\begin{figure}[htb]%
%}{%
%	\end{figure}%
%}
%\makeatother

% lepsze łamanie linków
\usepackage{breakurl}

% umożliwienie pisania '_' zamiast '\_' oraz wlączenie dzielenia wyrazów po znaku '_' (a nie tylko po '-').
%  - dodanie opcji [nohyphen] wyłącza dodawanie znaczka '-' przy dzieleniu wyrazu
%  - w trybie matematyczym '$...$' znak '_' nadal działa jako indeks dolny
%  - NIE WOLNO używać '_' w nazwach plików, gdy używa się tego pakietu!!!
\usepackage[nohyphen]{underscore} 

% ładne tabelki (+ możliwość obracania ich za pomocą \begin{sidewaystable})
\usepackage{booktabs}
\usepackage{rotating}

% tytuły rozdziałów z osobnymi autorami\
%
% autor: Paweł Barszcz
% np. 
%   \chapterWithAuthor{Mój super rozdział}{Paweł Barszcz}
\makeatletter
\newcommand\chapterWithAuthor[2]{%
	\chapter{#1}
	{\large\it\textbf{--- #2 ---}}
	\bigskip
}
\makeatother

\usepackage{parskip}	% dodaje odstępy po akapitach, usuwa wcięcia z pierwszych linii akapitów

% między innymi obsługa występujących po sobie footnote (żeby nie było '12', lecz '1,2')
% oraz umożliwinie tworzenia przypisów w tytułach rozdziałów i sekcji
\usepackage[stable,multiple]{footmisc}
%\usepackage[multiple]{footmisc}